<?
	include("../../php/handler.php");
	$bts_handler = new handler();
	$bts_handler->connect();
	
	function get_process_with_longest_remaining_time($processes) {		
		$currentMax = 0;
		foreach ($processes as $value) {
			if($value->remaining_runtime > $currentMax) {
				$result = $value;
				$currentMax = $value->remaining_runtime;
			}
		}
		return $result;
	}
		
	$processes = $bts_handler->get_processes();
	$executionText = "";
	//Erste CPU-Runde
	$tick = 0;
	$lastProcessCount = 0;
	while(true) {
		//Prozesse suchen, die momentan schon da sind
		$currentProcesses = $processes->get_current_processes($tick);
		//wenn keine Prozesse mehr vorhanden -> ABBRUCH
		//hier möglicher Bug, wenn später noch Prozesse ankommen, aber aktuell nichts zu tun ist
		if(count($currentProcesses) === 0) {
			break;
		}
		//nur ausführen, wenn neue Prozesse dazugekommen sind oder der aktuelle Prozess durchgelaufen ist
		if($processes->has_new_processes($tick) || !isset($currentProcess) || $currentProcess->remaining_runtime === 0) {
			//Prozess suchen, der längste Restlaufzeit hat
			$currentProcess = get_process_with_longest_remaining_time($currentProcesses);
		}
		//Prozess ausführen
		$currentProcess->remaining_runtime = $currentProcess->remaining_runtime - 1;
		//Text für Ausgabe sammeln
		$executionText .= "Tick: ".$tick."<br />";
		$executionText .= "Prozess: ".$currentProcess->name."<br />";				
		//allen vorhandenen Prozessen mitteilen, dass sie 1 Tick gelaufen sind oder gewartet haben
		$processes->run_all_current_processes($tick);
		//nächste Runde
		$tick = $tick + 1;
	}
	$average_runtime = $processes->average_runtime();
	$average_wait_time = $processes->average_wait_time();	
?>
<!DOCTYPE HTML>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>BTS Creative Labs</title>
        <link href="../../css/main.css" rel="stylesheet" type="text/css">
    </head>
    <body>
        <div id="wapper">
            <div id="head">
                <div id="banner">
                    <div id="instLogo">
                        <a href="http://www.informatik.hs-mannheim.de/"><img src="../../media/images/Informatik Logo.jpg" width="260" height="90" alt="Fakultät Informatik Logo" longdesc="http://www.informatik.hs-mannheim.de/"></a>
                    </div>
                    <div id="fhLogo">
                        <a href="http://www.hs-mannheim.de"><img src="../../media/images/fhlogo.jpg" width="165" height="91" alt="HS Mannheim Logo" longdesc="http://hs-mannheim.de"></a>
                    </div>
                </div>
                <div id="main-menue">
                    <img src="../../media/images/mmbl.gif" width="38" height="61" alt="Banner Rand Linker metallern mit Schraube" id="schraubelinks">
                    <div id="nav">
                        <div id="first-nav">
                            <a class="unselected" href="../../index.php">Home</a>
                            <a class="selected" href="#">Scheduling</a>
                            <a class="unselected" href="../info.html">Infos</a>
                        </div>
                        <div id="secound-nav">
                        	<a href="../scheduling.php">Prozesse</a>
                            <a href="rr.php">RR</a>
                            <a href="fcfs.php">FCFS</a>
                            <a href="sjf.php">SJF</a>
                            <a href="ljf.php">LJF</a>
                            <a id="active" href="#">LRTF</a>
                            <a href="srtf.php">SRTF</a>
                            <a href="ps.php">Prioritätengesteuertes Scheduling</a>
                        </div>
                    </div>
                    <img src="../../media/images/mmbr.gif" width="38" height="61" alt="Banner Rand Rechts metallern mit Schraube" id="schrauberechts">
                </div>
            </div>
            <div id="contend">
				<h1>LRTF</h1>            
				<div id="result">
					<div id="status">
						<div>Durchschnittliche Laufzeit: <? echo $average_runtime; ?></div>
						<div>Durchschnittliche Wartezeit: <? echo $average_wait_time; ?></div>
					</div>
					<div id="prozesse">
						<? echo $executionText; ?>
					</div>
				</div>
            </div>
            <div id="fotter">
                <img src="../../media/images/mmbl.gif" width="38" height="61" alt="Banner Rand Linker metallern mit Schraube" id="schraubelinks">
                <div id="fottershild">
                    <a>Copyright by Creativ Labs</a>
                </div>
                <img src="../../media/images/mmbr.gif" width="38" height="61" alt="Banner Rand Rechts metallern mit Schraube" id="schrauberechts">
            </div>
        </div>
    </body>
</html>